package com.wms.mapper;

import com.wms.dto.LocationDTO;
import com.wms.dto.TaskDetailDTO;
import com.wms.dto.WarehouseDTO;
import com.wms.entity.StockTakingTaskDetailGroup;
import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface StockTakingTaskDetailGroupMapper {
    /**
     * 查询任务详情分组展示
     * @param code
     * @return
     */
    StockTakingTaskDetailGroup queryTaskDetailGroupByCode(@Param("code") String code);

    /**
     * 查询该任务仓库下的所有库区
     * @param taskId
     * @return
     */
    
    List<WarehouseDTO> queryWarehouse(@Param("taskId") Integer taskId);

    /**
     * 查询该库区下的所有货位
     * @param taskId
     * @return
     */
    
    List<LocationDTO> queryLocation(@Param("taskId") Integer taskId,@Param("warehouseId") Integer warehouseId);

    /**
     * 查询该货位下的所有物料
     * @param taskId 任务ID
     * @param locationId 货位ID
     * @return
     */
    
    List<TaskDetailDTO> queryTaskDetail(@Param("taskId") Integer taskId, @Param("locationId") Integer locationId);

    /**
     * 复制任务详情记录
     * @param oldCode 原任务编号
     * @param newTaskCode 新任务编号
     * @param userId 新盘点人ID
     * @return
     */
    int copyTaskDetails(@Param("oldTaskNum") String oldCode, @Param("newTaskNum") String newTaskCode, @Param("userId") Integer userId);

}
